Skip to content

ML Lecture 3 Part II Data Preparation

字数 2,475阅读时间 5 分钟Ayaskt
2025/12/05 16:29:48 CST

数据准备 Data Preparation

概览 Overview

原始数据可能存在的问题

  • 数据缺失 Data missing
  • 数据中存在离群点 Data outlier
  • 数据重复 Data duplication
  • 数据不一致Data inconsistency

缺失数据处理:删除与填补方法 Missing Data Processing: Removal and Impute Method

方法一:删除样本

  • 当某个样本缺少某个字段时,将该样本删除。

  • 前提条件:缺失比例小于 5%。

  • 优点:操作简单。

  • 缺点:对于 MAR 和 MNAR 类型的缺失,可能引入偏差。

MAR(随机缺失)的性质是“有迹可循”,数据丢失的原因可以通过其他已有的变量来解释,比如因为是女性所以没填体重,这种缺失通常可以利用现有数据进行推断和修补。 而 MNAR(非随机缺失)的性质是“刻意隐瞒”,数据丢失的原因直接取决于缺失值本身的大小,比如因为收入太高或太低故意不填,这种缺失无法通过现有数据推断,会造成严重的系统性偏差。 简单来说,两者的核心区别在于:MAR 的缺失线索藏在别的列里,它是可修复的;而 MNAR 的缺失线索被它自己带走了,极难还原。

方法二:估计缺失值 当某个样本缺少某个字段时,对该字段进行估计填补。

估计方法:

  • 用统计指标估计(如均值/中位数/众数);

  • 使用机器学习方法(如 KNN)。

  • 优点:可以充分利用已有数据。

  • 缺点:可能产生不准确的数据。

离群值去除:Z 分数方法与 IQR 方法 Outlier Removal: the Z-Score and IQR Method

识别和去除离群值

  • 对于服从或接近高斯分布的数据,使用 Z 分数方法。
  • 对于高斯或非高斯分布的数据,可以使用百分位数和四分位距(IQR)方法。

高斯分布与偏度 Gaussian Distribution & Skewness

高斯分布的 p.d.f 为:

显然有:

  • 概率分布关于均值对称;
  • 靠近均值的数据点出现得更频繁。

偏度 Skewness

  • 对称分布的偏度为 0;
  • 负偏度 Negative Skewness:左侧尾部更长;
  • 正偏度 Postive Skewness:右侧尾部更长。

Gaussian distribution: symmetrical, zero skewness
高斯分布:对称、偏度为 0。

Z 分数方法 Z-Score Method

其中:

  • :数据点
  • :均值
  • :标准差
  • : Z 分数

Z 分数表示该数据点与均值之间相差了多少个标准差。 数据点离均值越远,它是离群点的可能性就越大。

IQR 方法 (四分位距方法)

四分位距 Interquartile Range 即数据从25%到75%的区间长度。

  • 认为超出 区间的数据为离群点。
  • 在非高斯分布的数据中同样适用。

数据重复与不一致 Data Duplication and Dnconsistency

不一致类型示例修正方法
格式不一致 (Inconsistent format)日期 “2023/01/01” vs “01-Jan-2023”统一为标准格式
单位不一致 (Inconsistent units)温度 “30° C” vs “86° F”转换为相同单位
命名不一致 (Inconsistent naming)“New York” vs “New York City”创建映射表或使用正则表达式
逻辑不一致 (Inconsistent logic)年龄 “150 岁” 或 “-5 岁”基于业务规则进行修正(例如:截断至合理范围)
数值不一致 (Inconsistent values)同一个人的年龄不同移除样本(如果占比少于 5%)
根据实际情况选择一个选项(例如:保留来自权威来源的数据等)

数据变换:归一化、标准化、幂变换 Data Transform: Normalization, Standardization, Power Transform

数据变换 Data Transform包括缩放数值范围、调整分布形状等操作,目的是让数据更适合后续模型学习。

  • 数据归一化 Normalization;数据标准化 Standardization。
  • 幂变换 Power Transform :处理偏度问题。

数据归一化与标准化

简单来说:

  • 归一化 (Normalization) 是把数据压缩到一个固定的区间(通常是 0 到 1)。
  • 标准化 (Standardization) 是把每个特征平移并缩放到均值为 0、标准差为 1;它不会自动把非正态数据变成正态分布。

进行归一化和标准化的原因

在机器学习中,不同特征的数值范围可能完全不同,例如:年龄 0–100,收入 0–1,000,000。
如果不进行归一化,可能会出现:

  • Slow convergence of gradient descent algorithms: 梯度下降类算法收敛较慢,因为在不同方向上的步长不一致(如 SGD、神经网络等);
  • Biased distance/similarity calculations: 距离或相似度计算会被数值范围较大的特征主导(如 KNN、K-Means 等);
  • Model weight imbalance: 线性回归、SVM 等模型可能会给数值较大的特征分配更高的权重,从而造成偏倚。

Normalization: Unify the ranges of different data values into a fixed range.
归一化:把不同特征的数据范围统一映射到一个固定的区间。

归一化的使用场景

是否需要归一化/标准化主要取决于输入特征的尺度和所用模型,而不是输出是否为连续数值型。KNN、K-Means、SVM、神经网络、正则化线性模型等通常会受特征尺度影响。

  • 对测试集做归一化时,必须使用训练集的统计量(如均值、标准差、最小值等)。

  • 这样可以避免数据泄露 Data Leakage。

  • 类别型或文本数据不需要归一化。

  • 类别特征需要进行编码,但不必做归一化。

Z 分数标准化 (当服从高斯分布)

将数据转换为均值为 0、标准差为 1 的分布:

优点

  • 在大多数场景下都适用。

缺点:

  • 效果最好的是在数据接近正态分布时;
  • 输出数据范围不是固定区间

Min-max 归一化 Min-max Normalization

将数据线性映射到 区间:

优点:

  • 确保数据被规范 regularized 到一个固定的范围。

缺点:

  • 仅在数据分布比较均匀 relatively evenly 时效果较好;
  • 对离群点非常敏感。

鲁棒缩放归一化 Robust Scaling Normalization

使用中位数和四分位距(IQR)代替均值和标准差,以减小离群点的影响。

优点: 对离群点干扰具有更好的鲁棒性。

缺点: 计算略微复杂一些。

幂变换 Power Transform

幂变换是一类用于减小偏度、稳定方差的变换技术: 使用幂函数; 变换函数是单调 monotonic 的。

幂函数的形式为

优势 用来稳定数据的方差(减小偏度);

  • 减少极端值的影响;
  • 得不同区间上的方差更一致,不再强烈依赖于

使数据分布更接近高斯分布;

  • 许多机器学习模型在接近高斯分布的数据上表现更好。

为模型评估构建训练集与测试集 Construct Training / Test Sets for Model Evaluation

常用于构建训练集和测试集的方法:

  • 单一划分 A single training and test set
  • 考虑分层采样 Consider stratification
  • K 折交叉验证 K-fold cross-validation
  • 留一法交叉验证 Leave-one-out cross-validation

将完整数据集随机划分为训练集和测试集 在模型评估中的好处:

  • 有一个独立的测试集,评价较为无偏 unbiased
  • 可帮助发现并避免过拟合模型。

多类别情况下的分层采样 Stratified sampling (multiple classes)好处

  • 防止样本分布偏差;
  • 降低评估结果的方差。

做法

  • 对每个类别分别进行随机抽样,保证训练集和测试集中各类别所占比例与原始数据集相同。

交叉验证 Cross-validation

K-fold cross validation

将数据集划分为多个子集或折(subsets or folds); 每次取其中 k−1 折作为训练集,剩下 1 折作为测试集来训练和评估模型; 轮流把每一折都作为测试集,直到所有折都被用作过测试集。

优势

  • 减少因为一次随机划分导致的偶然误差;
  • 提供更稳健的性能评估;
  • 最大化地利用了全部数据。

缺陷

  • 训练时间更长;
  • 实现上更复杂。

留一交叉验证 Leave-one-out cross-validation

留一交叉验证是 k 折交叉验证的极端情况,此时 等于样本数。

  • 数据集中每一个样本单独作为一折;
  • 每次用 k−1 个样本训练模型,剩下的 1 个样本用来测试;
  • 轮流将每个样本都作为测试样本。

除特别注明外,本站原创内容采用 CC BY-NC-SA 4.0 协议授权;引用的歌词、课程材料、图片等第三方内容版权归原权利人所有。
Built with VitePress.